package com.example.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.domain.Category;
import com.example.domain.Dish;
import com.example.service.ICategoryService;
import com.example.service.IDishService;
import com.example.service.ex.CategoryException.DishException;
import com.example.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/category")
public class CategoryController {

    @Autowired
    private ICategoryService categoryService;

    /**
     * 添加菜品/套餐分类
     * @param category 传递的餐品对象
     * @return 响应给页面的数据
     */
    @PostMapping
    public R save(@RequestBody Category category){
        categoryService.save(category);
        return new R(1);
    }

    /**
     * 查询所有分类并分页
     * @param page 当前页
     * @param pageSize 每页显示条数
     * @return 响应数据
     */
    @GetMapping("/page")
    public R page(Integer page,Integer pageSize){
        Page<Category> page1 = categoryService.page(page, pageSize);
        return new R(1,page1);
    }

    /**
     * 删除分类
     * @param ids 分类id
     * @return 响应数据
     */
    @DeleteMapping
    public R remove(Long ids){
        categoryService.remove(ids);
        return new R(1);
    }

    /**
     * 修改分类
     * @param category 修改的数据
     * @return 响应的数据
     */
    @PutMapping
    public R update(@RequestBody Category category){

        categoryService.update(category);
        return new R(1);
    }
    /**
     * 添加餐品页面的下拉框中的分类
     * @param type 类型
     * @return 响应页面数据
     */
    @GetMapping("/list")
    public R list(Integer type){
        List<Category> list = categoryService.list(type);
        return new R(1,list);
    }
}
